# 使用最新的官方 Node.js 镜像作为基础镜像，并命名为 `builder` 阶段
FROM node:latest AS builder

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到容器的工作目录 `/app` 中
COPY . .

# 删除 node_modules 和 package-lock.json 以确保干净的构建环境
RUN rm -rf node_modules package-lock.json


# 添加 SSH key
# 请确保在构建之前将 SSH key 添加到构建上下文中
# 例如：将 id_rsa 和 id_rsa.pub 文件放在项目根目录
COPY id_rsa /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa && ssh-keyscan github.com >> /root/.ssh/known_hosts

RUN npm config set registry https://registry.npmmirror.com && \
    npm install

# 在容器中构建项目
RUN npm run build

# 使用轻量级的官方 Nginx 镜像作为基础镜像
FROM nginx:alpine

# 时区
ENV TZ=Asia/Shanghai

# 本地的 `nginx.conf` 文件复制到容器的 `/etc/nginx/conf.d/default.conf`
COPY nginx.conf /etc/nginx/conf.d/default.conf

# `builder` 阶段中复制构建好的文件到 Nginx 容器的网页根目录 `/usr/share/nginx/html`
COPY --from=builder /app/dist /usr/share/nginx/html